package com.wisdytech.linkdcs.equipment.service;

import java.text.ParseException;
import java.util.List;

import com.github.pagehelper.PageInfo;
import com.wisdytech.common.bean.Filter;
import com.wisdytech.common.bean.StandardHTableResult;
import com.wisdytech.linkdcs.equipment.dto.EquipHistorySearchDTO;
import com.wisdytech.linkdcs.equipment.dto.EquipmentAuoAlarmDTO;
import com.wisdytech.linkdcs.equipment.model.AutoAlarmRecord;
import com.wisdytech.linkdcs.equipment.model.CollectionParam;
import com.wisdytech.linkdcs.equipment.vo.EquipmentAutoAlarmVO;
import com.wisdytech.linkdcs.equipment.vo.EquipmentDataVO;
import com.wisdytech.linkdcs.equipment.vo.EquipmentHistoryDataVO;
import com.wisdytech.linkdcs.equipment.vo.EquipmentRealDataVO;

/**
 * 
 * <p>ClassName: IEquipmentDataService</p>
 * <p>Description: 设备数据服务接口</p>
 * <p>Author: PC</p>
 * <p>Date: 2017-9-25</p>
 */
public interface IEquipmentDataService {
    
    /**
     * 
     * <p>Description: 分页查找设备告警历史</p>
     * @param filter 过滤信息
     * @param dto 参数
     * @return
     */
    public PageInfo<EquipmentAutoAlarmVO> listAutoAlarm(Filter filter,EquipmentAuoAlarmDTO dto);

    /**
     * s
     * <p>Description: 分页查找设备实时数据</p>
     * @param filter 分页信息
     * @param eqCode 设备编号
     * @param modelCode  设备类别编号
     * @return
     */
    public PageInfo<EquipmentDataVO> listRealData(Filter filter,String eqCode,String modelCode);
    
    /**
     * 
     * <p>Description: 分页查找自动报警列表</p>
     * @param filter 分页信息
     * @param equipId 设备id
     * @param paramId 参数id
     * @return 
     */
    public PageInfo<AutoAlarmRecord> listAutoAlarmDetail(Filter filter,String equipCode,String paramCode,String startTime,String endTime);
    
    /**
     * 
     * <p>Description: 获取设备参数实时数据</p>
     * @param id 设备id
     * @param params 参数列表
     * @return 返回结果集 
     */
    public EquipmentRealDataVO listRealData(String id,List<CollectionParam>  params);
    
    
    /**
     * 
     * <p>Description: 获取设备历史数据</p>
     * <p>hbase分页比较复杂，实现逻辑为查询size+1条数据   多出的一条为上一页的结束key 这个作为查询的startkey,同时 这个作为上一页下一页中上一页的标识</p>
     * @param dto 查询条件
     * @return
     */
    public List<EquipmentHistoryDataVO> listHistoryDetail(EquipHistorySearchDTO dto) throws ParseException;
    
}
